#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：图灵学习 
@File    ：6.jsonpath的简单使用.py
@IDE     ：PyCharm 
@Author  ：ChenLiGao
@Date    ：2024-11-22 15:03
'''
"""
    jsonpath 是用来提取json字符串里面的内容，xpath是用来提取html里面的内容
"""

from jsonpath import jsonpath

info = {
    "name":"test",
    "error_code": 0,
    "stu_info": [
        {
            "id": 2059,
            "name": "小白",
            "sex": "男",
            "age": 28,
            "addr": "河南省济源市北海大道xx号",
            "grade": "天蝎座",
            "phone": "1837830xxxx",
            "gold": 10896,
            "info": {
                "card": 12345678,
                "bank_name": '中国银行'
            }
        },
        {
            "id": 2067,
            "name": "小黑",
            "sex": "男",
            "age": 28,
            "addr": "河南省济源市北海大道xx号",
            "grade": "天蝎座",
            "phone": "87654321",
            "gold": 100
        }
    ]
}

"""
未使用jsonpath时，提取dict时的方式
"""
res1 = info["stu_info"][0]["name"]
print(res1)
res2 = info["stu_info"][1]["name"]
print(res2)

print("----------我是分割线----------")

"""
使用jsonpath时，提取dict时的方式
"""
res_1 = jsonpath(info, "$.stu_info[0].name")
print(res_1) # 返回的是一个列表
res_2 = jsonpath(info, "$.stu_info[1].name")
print(res_2)

# 简略写法，表达含义是可以跨级别获取的
res = jsonpath(info, "$..name")
print(res)

res4 = jsonpath(info, "$..bank_name")
print(res4)